package com.jsoft.service.impl;

import com.jsoft.dao.UserDao;
import com.jsoft.dao.impl.UserDaoImpl;
import com.jsoft.entity.User;
import com.jsoft.service.UserService;
import com.jsoft.util.MD5Util;

import java.util.Objects;

/**
 * @author:sha
 * @email:o68o4741@163.com
 * @date:2023/2/21
 */
public class UserServiceImpl implements UserService {
    private static UserDao userDao = new UserDaoImpl();

    @Override
    public User getUserByAccount(String account) throws Exception {
        return userDao.getUserByAccount(account);
    }

    @Override
    public boolean login(User user) throws Exception {
        User userDb = userDao.getUserByAccount(user.getAccount());

        /**
         * System.out.println("service层拿的传过来的对象的相关数据"+userDb)。
         */
        if (Objects.isNull(userDb)) {
            /**
             * 用户名不存在
             */
            return false;
        }
        /**
         * 对比密码
         */
        String salt = userDb.getSalt();
//
        /**
         * System.out.println("service层拿的传过来的对象的salt"+salt)。
         *前台传过来的密码同样需要按照相同的规则加密过后再进行比对
         */
        String password = MD5Util.stringToMD5(user.getPassword()+salt);
        /**
         * System.out.println("数据库里的密码"+userDb.getPassword())。
         * System.out.println("service层拿的传过来的对象加密后的密码"+password)。
         */

        if(!Objects.equals(userDb.getPassword(),password)) {
            return false;
        }
        return true;
    }
}
